
第一,为什么需要重复指令。
在生存模式或红石工程中,很多操作如果手动执行会让人崩溃,比如每过几秒就要输入一次天气切换命令,或者为了让刷怪塔定时清理掉落物,手动放沙子再推掉,太费手了,重复指令就是让游戏替你跑腿的终极武器,命令方块加上循环模式,配合红石脉冲或者直接设置自动运行,就能让世界自动运转,省下的时间可以去挖钻石或者盖房子,这才是资深玩家的玩法。
第二,认识命令方块的三种模式。
命令方块本身有脉冲循环和连锁三种模式,脉冲模式跟普通按钮一样,按一次执行一次,适合单次操作,循环模式是重点,它会在每一游戏刻尝试执行命令,也就是每秒二十次,如果你不加任何限制,它会像疯狗一样狂刷,导致服务器卡顿甚至崩服,所以循环命令必须配合延迟或者条件检测才能用,连锁模式则是跟着前面的命令方块依次执行,适合做复杂逻辑链,比如先检测玩家位置再生成结构。
第三,搭建最基础的循环时钟。
最简单的方法就是放一个循环命令方块,在里面输入指令比如“say 我还在运行”,然后放一个拉杆给它供电,它就会每秒喊二十次,但实际你只会看到聊天栏刷屏,所以必须加延迟,最简单是用红石中继器组成时钟,比如两个中继器对点,调节延迟档位,然后用这个红石信号去触发脉冲命令方块,而不是直接用循环模式,这样你就能控制频率,比如每两秒一次,或者每十秒一次,具体延迟看你的需求,刷怪塔清理可以每三十秒一次,天气切换可以每五分钟一次。
第四,用循环命令方块配合计时器。
如果你不想搭红石电路,可以用计分板加循环命令方块实现精确计时,先创建一个计分板比如“time”,然后在循环命令方块的指令里写“scoreboard players add @a time 1”,注意这里用@a会让每个玩家都加一分,如果只想全局计时,可以用一个假目标比如“timer”,再在同一个循环命令方块里写“execute if score timer time matches 30 run say 三十秒到了”,这样每隔三十刻也就是一点五秒就会触发一次,想改时间直接改数字,比红石时钟灵活,而且不占地方,缺点是循环命令方块本身会每刻执行,对服务器有压力,所以尽量把频率调低。
第五,避免循环命令方块卡顿的窍门。
很多新手喜欢把所有自动化都塞进一个循环命令方块里,结果就是每刻执行几百条指令,游戏直接变ppt,经验是能不用循环就不用,能用连锁的就不循环,比如你只想让某个区域每隔十分钟生成一次铁傀儡,那就用一个脉冲命令方块加一个红石时钟,而不是循环模式,如果必须用循环,就在指令里加条件判断,比如“execute if block 坐标 空气 run setblock 坐标 stone”这样只有在特定条件下才执行,减少无效运算,另外尽量把多个指令合并成一条,用“/execute”和“/function”调用函数,函数可以批量处理还不容易出错。
第六,实战案例,自动清理掉落物系统。
我们做一个每三十秒清理一次附近掉落物的装置,用两个命令方块,第一个是循环模式加红石比较器检测,但简化做法是放一个循环命令方块,输入“kill @e[type=item,distance=..10]”,然后给它供上电,你会发现它每刻都在杀掉落物,连你刚扔出来的钻石都秒没,所以必须加延迟,用计分板方案,先创建计分板“clear_time”,然后在循环命令方块里写“scoreboard players add @e[type=item] clear_time 1”但这样每个物品都会累加计分,其实更好的办法是放一个循环命令方块专门计时,再放一个连锁命令方块在计时条件满足时执行清理,比如第一个循环命令方块写“scoreboard players add timer clear_time 1”,第二个连锁命令方块写“execute if score timer clear_time matches 600 run kill @e[type=item,distance=..10]”,第三个连锁命令方块写“execute if score timer clear_time matches 600 run scoreboard players set timer clear_time 0”,这样每六百刻也就是三十秒清理一次,完美。
第七,进阶玩法,用重复指令做定时任务。
除了清理掉落物,还可以定时切换游戏规则,比如每游戏日切换一次晴天和雷暴,用上面的计时器改一下,把条件改成“matches 24000”,也就是现实二十分钟,然后写“weather thunder”和“weather clear”交替,用另一个计分板记录状态,甚至可以用重复指令控制末地水晶的再生,或者自动修复村庄,这些骚操作在多人服务器里很实用,但注意权限,很多服务器禁用了命令方块,那就没办法了,单机里随便玩。
第八,一个小坑,循环命令方块和红石火把。
很多人喜欢把循环命令方块直接连上红石火把让他一直供电,这样它就会无限循环,但红石火把本身有刷新的延迟,有时候会导致命令方块不工作,最好是用拉杆或者红石块直接供电,稳定可靠,另外循环命令方块在取消供电后不会立即停止当前执行,可能会多跑一次,但影响不大,如果你需要精确控制,就用脉冲加时钟。
最后,重复指令的真正价值在于解放双手,但千万别滥用,每多加一个循环命令方块,你的世界就多一分卡顿的风险,合理规划频率,能用连锁就尽量连锁,能用函数就写函数,当你熟练了这些技巧,你就能在服务器里搞出自动农场无限资源刷怪塔,甚至做一个简单的红石计算机,这才是我的世界的终极乐趣。
相关文章